В этом публичном облаке есть полезный механизм Log Intelligence, который позволяет посмотреть глубоко на метрики частного и публичного облака VMConAWS, чтобы выяснить причины возникающих проблем. Основное назначение этого механизма - структурировать неструктурированные данные логов, визуализовать их на дэшбордах и дать администратору инструменты быстрого поиска и сопоставления данных (включая мощный механизм индексирования).
Log Intelligence полностью интегрирован с облаком VMware Cloud on AWS, охватывает всю линейку продуктов VMware и органично дополняет концепцию управления виртуальным датацентром Software-Defined Datacenter (SDDC).
По умолчанию Log Intelligence собирает и анализирует все логи для основных компонентов (vCenter, ESXi, vSAN). Но также в решении есть функция аудита логов сетевого экрана виртуальной инфраструктуры NSX-T, которую можно подключить отдельно:
Для интеграции с NSX-T нужно будет подключить VMware Cloud on AWS Content Pack, который позволит получить информацию о правилах фаервола, правилах обработки пакетов и прочую важную диагностическую информацию для администраторов:
После развертывания можно будет увидеть все исполняемые в среде NSX-T запросы:
Также можно управлять определениями оповещений (Alert Definitions):
Запросы можно сохранить на собственных или общих дэшбордах, а также включить Alert Definitions для отправки webhook во внешнюю систему или письма по электронной почте администратору.
Вот пример двух запросов, сохраненных на дэшборде:
На домашней странице можно видеть сработавшие алерты в виде таймлайна:
Вот так выглядит оповещение в письме администратору:
А так, например, webhook в мессенжер Slack:
Решение Log Intelligence также может перенаправлять логи в другие приемники для специфического анализа (подробнее тут). Поддерживаются следующие точки назначения:
Онпремизная инсталляция Syslog Server через TCP или UDP
Онпремизная инсталляция Splunk
Онпремизная отсылка по умолчанию через Authenticated HTTPs
Облачный Splunk Cloud Endpoint
Облачный Authenticated endpoint через протокол HTTPs
Для отправки логов в собственное онпремизное облако нужно будет развернуть Cloud Proxy:
Для облачного ничего добавлять не нужно:
События логов можно экспортировать в Raw-формате или в структуре JSON:
В общем, Log Intelligence может оказаться вам очень полезным в облаке VMware Cloud on AWS (или в гибридной среде с собственным датацентром), особенно, если ваша инфраструктура содержит десятки хостов ESXi.
Недавно мы писали об обновлении продукта для комплексного управления и мониторинга виртуальной инфраструктуры VMware vRealize Operations 7.5. Ранее для этого решения был запущен маркетплейс Dashboard Sample Exchange, где пользователи сообщества vROPs могут публиковать собственные полезные дэшборды (их уже почти 130 штук), которые помогают в ежедневных операциях по управлению платформой VMware vSphere.
Совсем недавно VMware запустила еще один маркетплейс - Super Metric Sample Exchange. В инфраструктуре vROPs суперметрики (super metrics) - это те, которые образованы путем каких-либо комбинаций обычных метрик через математическую формулу (например, какой процент CPU виртуальная машина отъедает от всего хоста ESXi). Для редактирования таких метрик используется super metric editor (подробнее тут):
Чтобы начать работу с маркетплейсом, нужно перейти на сайт vRealize и нажать кнопку View Samples:
В качестве фильтра для языка программирования выберите "vRealize Ops Super Metrics":
Еще один способ найти суперметрики - это пойти на https://code.vmware.com/samples и также выбрать там в фильтре "vRealize Ops Super Metrics":
На выходе будут сэмплы кода для суперметрик (пока их совсем немного):
Можно скачать их в формате JSON, после чего импортировать в разделе vRealize Operations > Administration > Configuration > Super Metrics:
Также вы можете добавлять и собственные суперметрики на маркетплейс. Для этого на картинке выше есть пункт "Export Selected Super Metric". Метрика также будет экспортирована в формате JSON. Для ее загрузки на маркетплейс нужно использовать портал VMware {code}, где вам потребуется завести аккаунт.
Там у вас будет кнопка "Add New Sample":
После этого запустится мастер добавления нового сэмпла, где вы можете выбрать ваш JSON:
Далее нужно добавить максимально понятное и подробное описание созданной вами суперметрики:
Вообще, это очень правильный подход, когда вендор открывает возможности для создания и обмена контентом между пользователями своего продукта. Тут VMware можно похвалить.
Недавно мы писали об утилите для тестирования производительности хранилищ HCIBench 2.0, которая помогает администраторам VMware vSphere валидировать конфигурацию кластера с точки зрения соответствия требованиям к производительности подсистемы хранения для приложений датацентра.
HCIBench используется для проведения синтетических тестов кластера хранилищ, когда нагрузка распределяется по нескольким виртуальным машинам на разных хостах ESXi. Генерация операций ввода-вывода происходит одновременно с разных ВМ согласно заранее определенному шаблону нагрузки.
А зачем вообще проводить тестирование кластера vSAN? Тут, как правило, есть следующие причины:
Понимание возможностей инфраструктуры хранения и возможность убедиться в том, что в ней нет аномалий.
Валидировать дизайн кластера vSAN с точки зрения приемо-сдаточных испытаний (User Acceptance Testing, UAT).
Получить референсные значения, с которыми можно будет сверяться при внесении существенных изменений в архитектуру vSAN.
Проведение тестов перед внедрением (PoC-проекты).
Установление базового уровня пользовательских ожиданий после развертывания приложений.
По итогу тестирования производительности хранилищ vSAN вы должны получить ответы на следующие вопросы:
Какого наибольшего числа операций ввода-вывода в секунду (IOPS) можно добиться?
Какая ожидаемая задержка выполнения операций (latency) при требуемом числе IOPS для рабочей нагрузки?
Какая максимальная пропускная способность операций чтения-записи (throughput)?
То есть результаты тестирования держатся на трех китах - IOPS, latency и throughput.
При проведении тестов нужно отключать все тормозящие технологии, такие как дедупликация и компрессия данных, а также шифрование на уровне кластера vSAN.
IOPS
Число выдаваемых IOPS зависит как от используемого оборудования для хостов и сетевых компонентов, так и от архитектуры системы. Актуальное число IOPS также зависит от уровня RAID в кластере vSAN, числа сетевых соединений между хостами, их загрузки и прочих факторов.
Обычно начинают тестирование с нескольких тредов на дисковый объект, а затем постепенно увеличивают это количество тредов, пока число выдаваемых IOPS не прекратит расти. При проведении тестирования число IOPS коррелирует с Latency, так как при увеличении одной операции ввода-вывода (размер блока операции) уменьшается число выдаваемых IOPS, а также увеличивается latency.
Latency
Обычно задержку измеряют в миллисекундах со стороны приложений, которые выполняют определенные операции. При этом, зачастую, нет каких-то референсных значений, их приходится выяснять экспериментальным путем (насколько это устраивает пользователей).
К увеличению задержек при выполнении операций приводят увеличение блока ввода-вывода, соотношение операций чтения и записи, одновременность исполнения операций ввода-вывода со стороны нескольких виртуальных машин и т.п.
Throughput
Пропускная способность важна при выполнении больших операций ввода-вывода, а также при различных паттернах чтения записи (последовательный/случайный). Чем больше размер I/O, тем очевидно больше пропускная способность. С точки зрения объема передаваемых данных одна операция I/O размером 256К равна 64 операциям ввода-вывода по 4К, но вот с точки зрения throughput это будут совершенно разные значения, так как займут разное время.
Методология тестирования хорошо описана в документации по HCIBench, а также вот в этой статье на русском языке. Работа с утилитой начинается по ссылке https://<HCIBench IP address>:8443.
Перед началом тестирования можно задать параметры среды - число виртуальных машин для кластера, количество их виртуальных дисков и их размер. Для ленивых есть параметр Easy Run, который позволит автоматически подобрать эту конфигурацию, исходя из размера кластера vSAN и параметров хостов ESXi:
Очень важно при тестировании также задать правильный профиль рабочей нагрузки (4 варианта на картинке выше).
После выполнения теста Easy Run вы получите выходной файл с результатами вроде vdb-8vmdk-100ws-4k-70rdpct-100randompct-4threads-xxxxxxxxxx-res.txt. Из имени файла можно понять использованную тестовую конфигурацию (она также будет в самом файле):
Также в папке с результатами тестирования будет подпапка с отдельными файлами, где хранятся результаты самих тестов:
Если открыть один их этих файлов, мы увидим детальные параметры производительности различных компонентов среды vSAN:
Полученные параметры можно считать базовым уровнем для тестирования производительности кластера. Теперь нужно увеличивать параллелизм, то есть число тредов Outstanding I/O (OIO), для выжимки оптимальной производительности. Увеличение этого параметра будет увеличивать число IOPS, а также, как следствие, будет расти Latency. Так вы сможете понять, как инфраструктура хранения ведет себя в динамике, реагируя на изменение профиля нагрузки.
Чтобы изменить параметр OIO, нужно отключить Easy Run и в профиле рабочей нагрузки нажать Add:
Также для измерения пропускной способности вы можете поэкспериментировать с размером операции ввода-вывода. Современные ОС поддерживают размер I/O в диапазоне 32K - 1 MB, но для тестирования лучше использовать I/O в диапазоне 32K – 256K.
Еще какие моменты надо учитывать при тестировании:
Синтетическое тестирование не учитывает, что профиль рабочей нагрузки в кластере в реальной жизни постоянно изменяется точки зрения соотношения операций чтения и записи и их рандомизации в потоке ввода-вывода. Используемая модель - всего лишь аппроксимация.
Тесты ориентированы на отслеживание характеристик хранилищ, а не загрузки CPU и памяти хостов ESXi.
Некоторое время назад мы писали о новых возможностях недавно вышедшего обновления платформы виртуализации VMware vSphere Platinum 6.7 Update 2. Cреди новых возможностей гипервизора там есть фича "Новые возможности планировщика CPU помогают бороться с уязвимостями типа L1TF".
Оказывается, это довольно серьезное улучшение. Надо сказать, что планировщик гипервизора side-channel aware scheduler (SCA) появился еще в прошлой версии платформы. Он закрывал уязвимость L1TF (L1 Terminal Fault) в процессорах Intel за счет того, что процессы виртуальных машин запускались только в одном треде одного физического ядра. Это позволяло нивелировать вектор атаки данного типа, но приводило к существенному снижению производительности.
Особенно это чувствовалось, когда сервер ESXi был загружен по CPU полностью, и SCA первой версии в этом случае давал до 30% хуже результат, чем без него. Если же сервер был загружен, например, на 75%, то в производительность оставалась примерно той же, но без SCA нагрузка на CPU была существенно ниже.
Итак, начиная с VMware vSphere 6.7 Update 2, появился обновленный планировщик SCAv2, который был существенно доработан по сравнению со своей предыдущей версией. Он позволяет исполнять контексты vCPU одной машины в разных гипертредах одного физического ядра процессора хоста. В этом случае атаке L1TF не подвержены взаимодействия типа VM/VM и VM/ESXi (чувствительная информация между ними не шарится в общем кэше).
В документе описано 2 типа тестов, которые проводились для планировщиков SCAv1 и SCAv2: работа хоста под максимальной нагрузкой по процессорам и под нагрузкой на уровне 75% от максимальной мощности всех CPU хоста ESXi (reduced load). В качестве базового уровня использовался планировщик без SCA (он же на картинке ниже обозначен как Default):
Если верить графикам, отражающим результаты тестирования различными бенчмарками, то планировщик SCAv2 работает существенно лучше во всех случаях, кроме очень большой (по выделенным ресурсам) виртуальной машины - Monster VM с базой Oracle и 192 vCPU, но такой кейс в реальной жизни случается весьма редко. Так что, в целом, улучшения были проведены весьма существенные (как минимум, на 11% планировщик стал более производительным по результатам тестов).
Помимо документа выше, информация об улучшениях планировщика приведена еще в KB 55806.
Многие из вас, конечно же, прекрасно знают, как работает механизм VMware HA на платформе vSphere. Но для тех из вас, кто подзабыл, Дункан написал пост о том, через какой интерфейс VMkernel идет этот трафик.
Так вот, хартбиты механизма HA пойдут через тот vmk-интерфейс, на котором в vSphere Client отмечена галочка Management, как на картинке:
Надо понимать, что этот пункт, хоть и называется Management, имеет отношение только к HA-трафику. Это означает, что если галочка не отмечена, то через этот интерфейс все равно можно будет подключиться по протоколу SSH, а также присоединить хост ESXi к серверу управления VMware vCenter, используя этот IP-адрес.
Так что Management - это не про управление, а только про HA. Это касается только обычной виртуальной инфраструктуры, а вот в кластере vSAN трафик HA идет по выделенной под vSAN сети автоматически.
Мы много пишем о решении для организации отказоустойчивых хранилищ на базе хостов ESXi - платформе VMware vSAN. Сегодня мы расскажем о дисковых группах на основе вот этого поста на блогах VMware.
Архитектура vSAN включает в себя два яруса - кэш (cache tier) и пространство постоянного хранения (capacity tier). Такая структура дает возможность достичь максимальной производительности по вводу-выводу, которая абсолютно необходима в кластере хранилищ на базе хостов.
Чтобы управлять отношениями устройств кэша и дисков хранения, решение vSAN использует дисковые группы:
У дисковых групп есть следующие особенности:
Каждый хост, который дает емкость кластеру vSAN, должен содержать как минимум одну дисковую группу.
Дисковая группа содержит как минимум одно устройство для кэша и от 1 до 7 устройств хранения.
Каждый хост ESXi в кластере vSAN может иметь до 5 групп, а каждая группа - до 7 устройств хранения. То есть на хосте может быть до 35 устройств хранения, чего вполне достаточно для подавляющего большинства вариантов использования.
Неважно, используете ли вы гибридную конфигурацию (SSD и HDD диски) или All-Flash, устройство кэширования должно быть Flash-устройством.
В гибридной конфигурации устройства кэша на 70% используются как кэш на чтение (read cache) и на 30% как кэш на запись (write buffer).
В конфигурации All-Flash 100% устройства кэша выделено под write buffer.
Write buffer и capacity tier
В принципе, всем понятно, что гибридная конфигурация хостов ESXi в кластере vSAN более дешевая (HDD стоит меньше SSD), но менее производительная, чем All-Flash. Но когда-то наступит время, и все будет All-Flash (в них, кстати, еще и нет нужды организовывать кэш на чтение, так как все читается с SSD с той же скоростью). Поэтому и выделяется 100% под write buffer.
При этом если операция чтения в All-Flash хосте находит блок в кэше - то он читается именно оттуда, чтобы не искать его в capacity tier. Максимальный размер write buffer на одной дисковой группе хоста ESXi - 600 ГБ. При этом если сам диск более 600 ГБ, то его емкость будет использоваться с пользой (см. комментарий к этой статье).
Для гибридных конфигураций 70% емкости кэша выделяется под кэш на чтение, чтобы быстро получать данные с производительных SSD-устройств, при этом vSAN старается поддерживать коэффициент попадания в кэш на чтение (cache hit rate) на уровне 90%.
Write buffer (он же write-back buffer) подтверждает запись на устройство хранения еще до актуальной записи блоков на сapacity tier. Такой подход дает время и возможность организовать операции записи наиболее эффективно и записать их на сapacity tier уже пачкой и более эффективно. Это дает существенный выигрыш в производительности.
SSD-устройства бывают разных классов, в зависимости от их выносливости (среднее число операций записи до его отказа). Все понятно, что для кэширования нужно использовать устройства высоких классов (они дорогие), так как перезапись там идет постоянно, а для хранения - можно использовать недорогие SSD-диски.
Вот сравнительная таблица этих классов (колонка TBW - это terabytes written, то есть перезапись скольких ТБ они переживут):
vSAN содержит в себе несколько алгоритмов, которые учитывают, как часто write buffer сбрасывает данные на сapacity tier. Они учитывают такие параметры, как емкость устройств, их близость к кэшу по времени записи, число входящих операций ввода-вывода, очереди, использование дискового устройства и прочее.
Организация дисковых групп
При планировании хостов ESXi в кластере vSAN можно делать на нем одну или более дисковых групп. Несколько дисковых групп использовать предпочтительнее. Давайте рассмотрим пример:
Одна дисковая группа с одним кэшем и 6 устройств хранения в ней.
Две дисковых группы с двумя устройствами кэша, в каждой по 3 устройства хранения.
Если в первом случае ломается SSD-устройство кэша, то в офлайн уходит вся дисковая группа из 6 дисков, а во втором случае поломка одного девайса приведет к выходу из строя только трех дисков.
Надо понимать, что этот кейс не имеет прямого отношения к доступности данных виртуальных машин, которая определяется политикой FTT (Failures to tolerate) - о ней мы подробно рассказывали тут, а также политиками хранилищ SPBM. Между тем, размер домена отказа (failure domain) во втором случае меньше, а значит и создает меньше рисков для функционирования кластера. Также восстановление и ребилд данных на три диска займет в два раза меньше времени, чем на шесть.
Кстати, некоторые думают, что в случае отказа дисковой группы, кластер vSAN будет ждать 60 минут (настройка Object Repair Timer) до начала восстановления данных на другие диски согласно политике FTT (ребилд), но это неверно. Если вы посмотрите наш пост тут, то поймете, что 60 минут vSAN ждет в случае APD (All Paths Down - например, временное выпадение из сети), а вот в случае PDL (Physical Device Loss) восстановление данных на другие дисковые группы начнется немедленно.
С точки зрения производительности, иметь 2 дисковые группы также выгоднее, чем одну, особенно если разнести их по разным контроллерам хранилищ (storage controllers). Ну и это более гибко в обслуживании и размещении данных на физических устройствах (например, замена диска во втором примере пройдет быстрее).
Работа операций ввода-вывода (I/O)
Как уже было сказано, в гибридной конфигурации есть кэши на чтение и на запись, а в All-Flash - только на запись:
При этом хост ESXi работает так, чтобы операции чтения с дисков попадали в кэш на чтение в 90% случаев. Остальные 10% операций чтения затрагивают HDD-диски и вытаскивают блоки с них. Но и тут применяются оптимизации - например, одновременно с вытаскиванием запрошенного блока, vSAN подтягивает в кэш еще 1 МБ данных вокруг него, чтобы последовательное чтение проходило быстрее.
Для All-Flash конфигурации кэш на чтение не нужен - все данные вытаскиваются с примерно одинаковой скоростью, зато все 100% кэша используются под write buffer, что дает преимущество в скорости обработки большого входящего потока операций ввода-вывода.
Ну и напоследок отметим, что vSAN при записи на флэш-диски распределяет операции записи равномерно между ячейками независимо от размера диска. Это позволяет диску изнашиваться равномерно и иметь бОльшую наработку на отказ.
Многие администраторы пользуются Putty для соединения с хостами VMware ESXi по протоколу SSH. Между тем, в веб-клиенте ESXi Embedded host client есть способ получить доступ к SSH-консоли прямо в браузере, реализованный на базе технологии HTML5.
Чтобы начать использовать консоль, надо сначала зайти на вкладку Services в разделе Manage и найти службу TSM-SSH:
Ее надо включить и поставить ей опцию запуска вместе с загрузкой хоста (Start and stop with host):
После этого в меню Action хостового веб-клиента надо выбрать пункт SSH Console:
Далее эта консоль загрузится в новой вкладке браузера:
Суть технологии AppDefense заключается в том, что она изучает нормальное поведение операционной системы и приложений при обычных условиях, а в случае выявления отклонений от этого состояния, оповещает об этом администратора и автоматически предпринимает некоторые шаги по защите окружения.
Сегодня мы расскажем о том, что нового появилось в vSphere Platinum 6.7 Update 2.
1. Диаграммы обнаружения процессов (Process Burndown Charts).
AppDefense постоянно находится в режиме обнаружения новых процессов и их взаимодействий в виртуальном датацентре (Discovery mode). Данная диаграмма показывает все новые обнаруженные взаимодействия, и если их не становится больше - то пора переводить приложение в защищаемый режим (Protected mode).
2. Статус репутации сервисов (Process Reputation Status).
Эта диаграмма показывает, какая часть сервисов опознана AppDefense как доверенная, а также сколько еще есть неизвестных сервисов и сервисов, которые не вошли в статус доверенных (Untrusted).
3. Статус проверок целостности (Integrity Check Status).
На этой диаграмме видны проверки целостности компонентов гостевой ОС Windows, что позволяет быть спокойным относительно вносимых в среду изменений со стороны стороннего ПО.
4. Улучшения механизма событий мониторинга и адаптивной механики допустимого поведения сервисов.
AppDefense постоянно учится, работая в датацентре - и этот движок был существенно улучшен, особенно в части допустимого поведения сервисов. Также теперь в отображении происходящих событий дается больше информации.
5. Диаграммы топологии (в статусе Beta).
Этот давно запрашиваемый пользователями функционал AppDefense позволяет наглядно отследить и визуализировать, какие сервисы с какими взаимодействуют и по каким портам. Это позволяет абстрагироваться от уровня хостов и гипервизоров, сосредоточившись на понимании взаимодействия сервисов в датацентре.
6. Интеграция VMware Tools и AppDefense.
Теперь модули AppDefense поставляются для гостевых ОС вместе с VMware Tools (по аналогии с модулями NSX introspection). Это позволяет также и создавать шаблоны виртуальных машин с уже интегрированными модулями AppDefense.
7. Улучшения vSphere Plugin.
AppDefense Plugin for vSphere Platinum 6.7 Update 2 получил много улучшений в части рабочего процесса по инсталляции в кластере, а также по апгрейду виртуального модуля AppDefense.
8. Прочие улучшения.
Здесь можно отметить следующие:
Поддержка новых механизмов современных ОС упрощает использование VBS (Virtualization-Based Security), виртуальных устройств TPMs, шифрования уровня ВМ, безопасной загрузки и других возможностей по обеспечению безопасности. После обновления со старых систем, например Windows Server 2008 R2, эти возможности включатся автоматически.
Улучшения Update Manager и Host Profiles в части процесса обновлений хостов ESXi.
Новые возможности для аудита и камплаенса - история паролей, лимит по повторному использованию паролей, улучшенный SSO, логирование всех событий vCenter и прочее. События можно отправить в сторонние системы, такие как vRealize Log Insight или другую SIEM-систему.
Улучшенный API по замене сертификатов ESXi, также можно сгенерировать запрос на создание сертификата средствами vCenter.
Новые возможности планировщика CPU помогают бороться с уязвимостями типа L1TF.
Скачать VMware vSphere Platinum 6.7 Update 2 можно по этой ссылке.
Вильям Лам написал интересную заметку про обновление информации о сетевой идентификации гостевой ОС, которую выдает VMware Tools. Она показывается на вкладке Summary клиента vSphere Client или VMware Workstation:
По умолчанию эта информация обновляется каждые 30 секунд на базе данных, предоставляемых пакетом VMware Tools из гостевой ОС. Однако если вы используете технологию создания мгновенных клонов (Instant Clone) и массово создаете виртуальные машины, то вам может потребоваться увидеть эту информацию пораньше.
Здесь есть 2 пути:
1. Принудительно обновить настройки из гостевой ОС следующими командами:
Windows - C:\Program Files\VMware\VMware Tools\VMwareToolboxCmd.exe info update network
Linux - /usr/bin/vmware-toolbox-cmd info update network
Mac OS - /Library/Application\ Support/VMware\ Tools/vmware-tools-cli info update network
2. Изменить интервал, по которому обновляются данные со стороны гостевой ОС (это может создать дополнительную нагрузку из-за частых обновлений). По умолчанию это 30 секунд.
Для этого в vmx-файл виртуальной машины нужно добавить следующую строчку (но не факт, что это работает сейчас):
Некоторые администраторы VMware vSphere задаются вопросом, а для чего же нужна опция Dedicated failover hosts при настройке механизма Admission Control в кластере VMware HA:
Очень просто - это так называемые Spare Hosts, то есть запасные и всегда свободные хосты ESXi, которые берут на себя нагрузку по размещению виртуальных машин только в случае сбоев других серверов, обрабатываемых механизмом VMware HA.
Эти хосты в обычной жизни будут простаивать, и, если на них не удастся запустить виртуальные машины в случае сбоя, VMware HA все равно перезапустит эти ВМ на других хостах ESXi. Также эти хосты не будут браться в расчет механизмом VMware DRS, то есть он не будет мигрировать туда виртуальные машины, даже на период обслуживания других хостов (Maintenance mode).
Так для чего же такая настройка вообще существует, если выгоднее держать просто больше запаса емкости на хостах кластера HA, но использовать все серверы в нем? Вариантов может быть 2:
Совокупные затраты на Failover-хосты ниже, чем на создание запаса емкости на оставшихся серверах кластера (такое бывает крайне редко).
Вам нужно точно знать, где окажутся виртуальные машины после сбоя. Это актуально для некоторых лицензионных ограничений, касающихся лицензий на определенные серверы, как это сделано, например, у Oracle.
Оба этих варианта очень маловероятны, поэтому, как правило, настройку Dedicated failover hosts использовать вообще не нужно.
Если вы только планируете попробовать решение для создания отказоустойчивых кластеров хранилищ VMware vSAN на базе хостов ESXi, то для вас может оказаться полезной вот эта заметка. Приведем ее суть вкратце.
Когда вы планируете кластер vSAN, вам нужно определиться с политикой FTT (Failures to Tolerate) - она определяет, какое количество отказов хостов может пережить кластер хранилищ. Если установлено значение 1 (по умолчанию), то реплика одного VMDK будет размещена на дисках еще одного из хостов кластера.
Также при создании SPBM-политики хранилищ vSAN вы определяете уровень RAID (1, 5 или 6), в который виртуально будут собираться хосты ESXi на уровне дисковых объектов:
Иногда этот уровень RAID также называется FTM (Failure Tolerance Method).
vSAN - это объектное хранилище, где объекты состоят из компонентов. В состав компонентов входят реплики (Replicas - они содержат данные) и Witness (там находятся метаданные, чтобы избежать ситуации split-brain в кластере).
Есть три типа объектов на хранилище vSAN:
VM Home (домашняя директория)
VM Swap (файлы подкачки)
VM Disk (диски с данными)
На хостах ESXi при этом размещаются компоненты для каждого из объектов в соответствии с заданной политикой SPBM:
FTM, то есть способ размещения данных на хостах ESXi, как мы сказали выше, может быть:
RAID-1 (Mirroring, то есть зеркалирование объектов на хостах).
RAID-5/6 (оно же Erasure Coding - алгоритм кодирования с коррекцией ошибок).
Таким образом, в зависимости от FTT вам понадобится следующее минимальное количество хостов ESXi для RAID-1:
FTT
Число реплик
Компоненты Witness
Минимальное число хостов
0
1
0
1
1
2
1
3
2
3
2
5
3
4
3
7
Для RAID-5/6 вам потребуется вот такое минимальное число хостов ESXi:
FTT
Алгоритм Erasure coding
Схема избыточности
Минимальное число хостов
0
Нет
Без избыточности
1
1
RAID-5
3D+1P
4
2
RAID-6
4D+2P
6
3
Не применимо
Не применимо
Не применимо
При этом вы должны учитывать, что по-хорошему нужно добавить еще один запасной хост ESXi в кластер, так как при отказе одного из хостов при значениях из таблиц выше, вы потенциально попадаете в ситуацию, где отказ еще одного хоста может привести к потере данных. Особенно это нужно сделать, когда вы понимаете, что при отказе хоста ESXi ввести в строй новый займет продолжительное время.
Мы возрождаем традицию регулярных встреч группы пользователей решений VMware — VMUG Russia. Все как вы любите: лучшие докладчики, сложные и интересные темы, обмен опытом и много общения. Таги: VMware, VMUG, Events
Надо понимать, что важно не только настроить серверы SQL, но и саму среду vSAN, в зависимости от характера ваших нагрузок (какие-то базы данных требуют высокой производительности, какие-то большой дисковой емкости и т.п.).
Давайте посмотрим, что это за базовые рекомендации:
1. Общие рекомендации.
Включайте дополнительный хост ESXi к результатам сайзинга по схеме n+1 на случай отказа диска, дисковой группы или всего хоста в целом.
Имейте хороший запас по пропускной способности сети для трафика vSAN, рекомендуется использовать 10G сеть с выделенной полосой для трафика синхронизации. Для All-Flash vSAN это обязательное требование. И не забывайте о резервировании каналов.
Имейте как минимум 2 дисковых группы на хост - это может увеличить полосу пропускания во многих случаях, а также обеспечивает лучшую отказоустойчивость.
Службы vSAN на уровне кластера:
vSAN Performance service (включен по умолчанию в vSAN 6.7) предоставляет метрики производительности в сторонние системы, такие как vRealize Operations, что позволяет эффективно мониторить и решать проблемы.
Вы можете использовать шифрование data at rest (FIPS 140-2 compliant), это не влияет на производительность по IOPS, но дает нагрузку на CPU, поэтому лучше использовать процессоры с поддержкой возможности AES-NI. Для end-to-end шифрования используйте туннели IPSEC. Если нужно зашифровать только отдельную БД, используйте SQL Server native encryption.
vSAN 6.7 поддерживает SCSI-3 persistent reservations для общих дисков при использовании SQL Server FCI. Для этого на уровне кластера надо включить службу vSAN iSCSI Target.
Настройте политики SPBM для данных SQL Server:
Политика Failures to tolerate (FTT): убедитесь, что выставлено как минимум значение 1, не используйте опцию "No data redundancy".
Политика Number of disk stripes per object: используйте значение по умолчанию (1) и подумайте о разделении данных между разными дисками VMDK, привязанными к разным контроллерам vSCSI.
Политика IOPS limit per object: vSAN 6.2 и более поздние версии имеют возможности QoS, которые могут ограничить IOPS, потребляемые дисковым объектам. Не используйте эту политику для задач, требовательных к нагрузкам. Эта фича используется, как правило, для операций резервного копирования и восстановления, чтобы предотвратить забитие полосы пропускания этими задачами.
2. Рекомендации для нагрузок Tier-1 (высоконагруженные OLTP-базы).
Как правило, такие нагрузки по вводу-выводу включают запросы с множественным позиционированием точек записи в базе данных, активность по сбросу грязных страниц кэша на диск, а также запись транзакционного лога. Размер операции ввода-вывода небольшой - в диапазоне 8K - 64K. Можно использовать бенчмарки TPC-E для воспроизведения паттернов OLTP-подобных нагрузок.
Рассмотрите возможность использования All-flash vSAN.
Используйте как минимум диски SAS SSD (а не SATA SSD) - у них больше глубина очереди. Также подумайте о технологии NVMe.
Отключайте дедупликацию и компрессию данных, которые включены в vSAN по умолчанию. Лучше использовать компрессию таблиц на уровне базы данных.
Для object space reservation установите "Thick provisioning" для всех VMDK с данными SQL Server и логами. Это позволит не натолкнуться на проблему нехватки места при использовании тонких дисков. Также в опциях SQL Server лучше установить настройку Perform maintenance tasks, чтобы инициализировать файлы с данными сразу же. Также выделите сразу место под лог БД, чтобы не натолкнуться на недостаток места в гостевой ОС, либо установите настройку его роста в ГБ, а не в процентах.
Не используйте IOPS limit for object.
Используйте RAID-1 mirroring и как минимум FTT=1 для для VMDK-дисков с данными и логом.
Если вы используете дополнительные методы отказоустойчивости, такие как Always On Availability Groups, то вам может потребоваться увеличить FTT. Делайте это не только с точки зрения доступности, но и с точки зрения производительности. Вы можете комбинировать отказоустойчивость Availability Groups на уровне приложения с отказоустойчивостью на уровне дисковой подсистемы.
Если вам требуется доступность SQL между площадками, можно использовать архитектуру растянутых кластеров (vSAN Stretched Cluster).
Подумайте о коммутаторах для трафика vSAN. Оптимально использовать кластеры all-NVMe vSAN, тогда операции ввода вывода будут быстро передаваться между дисковыми устройствами без участия физических контроллеров. Также лучше использовать 10G-коммутаторы Enterprise-уровня с большими размерами буфера (non-shared), чтобы обеспечить работу с плотным потоком ввода-вывода.
2. Рекомендации для нагрузок Tier-2 (высоконагруженные OLTP-базы).
Это нагрузки от которых не требуется экстремальной производительности, поэтому они должны быть эффективными с точки зрения стоимости. Тут актуальны следующие рекомендации:
Для гибридной среды vSAN (микс HDD+SSD) рекомендуется следующее:
Используйте несколько дисковых групп для увеличения пропускной способности.
Имейте как минимум 10% от емкости данных для пространства кэширования на SSD. Также рекомендуется использовать объем SSD-емкости как минимум в два раза больший, чем рабочий набор данных (working data set).
Используйте, по возможности, устройства SAS SSD вместо SATA SSD.
Если вы используете конфигурацию All-flash vSAN, то:
Используйте дедупликацию и компрессию, если у приложений нет высоких требований по операциям записи.
Если хотите экономить место и не требуется большой производительности, то используйте конфигурацию RAID 5/6 erasure coding, но для транзакционных логов используйте VMDK-диски, размещенные на RAID 1.
Для object space reservation установите "Thick provisioning" для всех VMDK с данными SQL Server и логами.
3. Нагрузки типа Data Warehouse и серверов отчетов (Reporting).
Для таких нагрузок характерен большой размер операции ввода-вывода, так как происходит запрос большого объема данных из БД. Критичной метрикой здесь является не IOPS, а пропускная способность (MB/s). Для генерации таких нагрузок могут быть использованы бенчмарки TPC-H.
Тут приводятся следующие рекомендации:
Для конфигураций All-flash лучше использовать NVMe SSD для хранилищ данных, это даст хорошую производительность по большим операциям чтения.
Для конфигураций All-flash в целях экономии места используйте RAID 5/6 для VMDK с данными БД.
Преаллоцируйте пространство для логов SQL Server, чтобы не натолкнуться на проблему нехватки места.
Не используйте IOPS limit for object, это может ограничить полосу пропускания.
Лучше использовать 10G-коммутаторы Enterprise-уровня с большими размерами буфера (non-shared), чтобы обеспечить работу с плотным потоком ввода-вывода и выдать хорошую пропускную способность.
Как вы знаете, уже довольно давно компании Amazon и VMware совместно продвигают публичное облако VMware Cloud on AWS, где можно взять в аренду виртуальные машины. Недавно компания VMware выпустила документ VMware Cloud on AWS Evaluation Guide, который позволит вам понять процедуру развертывания и начать тестирование виртуальной инфраструктуры в облаке VMConAWS.
В документе представлен обзор функциональности платформы, ее основные возможности и основные шаги по ее первоначальной конфигурации. Также рассматривается опциональный вариант сопряжения облачного SDDC (Software-Defined Data Center) и онпремизной виртуальной инфраструктуры с настройкой средств катастрофоустойчивости.
Вы также научитесь строить и конфигурировать сети software defined networks в гибридном облаке, настраивать сетевые экраны, развертывать сервисы DNS, VPN, отчетности и многое другое. Лучше всего использовать данное руководство с функциональностью сервиса Get Started в облаке VMConAWS (оно под него и заточено). Для построения гибридной облачной среды вам потребуется как минимум один хост ESXi на платформе vSphere 6.0 Update 3 или более поздней в своем датацентре.
Необычно и печально то, что сервис VMware Cloud on AWS не предоставляет бесплатного триала (у всех остальных он есть), поэтому нужно быть готовым сразу платить.
На днях компания VMware анонсировала доступность новой версии своей флагманской платформы виртуализации VMware vSphere 6.7 Update 2. Напомним, что предыдущее обновление VMware vSphere 6.7 Update 1 вышло в августе прошлого года.
Давайте посмотрим, что с тех появилось нового:
1. Новое издание VMware vSphere ROBO Enterprise.
Теперь в издании для ROBO-сценариев (Remote or Branch Offices) появились следующие возможности уровня Enterprise:
DRS в режиме обслуживания (Maintenance Mode):
Доступно только для vSphere ROBO Enterprise.
Может быть использовано для автоматического перемещения ВМ между хостами (и обратно по окончании процесса). Для этого автоматически создаются правила VM-Host affinity (отслеживается, куда машины уехали перед миграцией, потом запомненные правила применяются - и машины приезжают обратно, где и были изначально).
Утилита PSC Converge tool теперь доступна в графическом интерфейсе. Об этом средстве мы писали вот тут, оно позволяет смигрировать внешний сервер Platform Services Controller (PSC) на простой в управлении embedded PSC.
Она дает следующие возможности:
Конвертация топологии external PSC в Embedded через GUI.
Можно выполнить шаги по выводу внешнего PSC из эксплуатации (Decomission).
Все это доступно в разделе System Configuration тонкого клиента vSphere Client (на базе HTML5).
Можно посмотреть текущую топологию PSC и vCenter в графическом или табличном виде.
В следующих релизах будет невозможно развернуть внешний PSC, поэтому с него надо уходить.
3. Улучшения резервного копирования и восстановления vCenter Server.
Здесь появилось 2 главных улучшения:
Новые протоколы, посредством которых вы можете сделать бэкап vCSA - NFS v3 и SMB.
Нотификации и алармы на успешное и неуспешное завершение задач РК. Эти алармы можно настроить подобно обычным алармам vSphere (послать email, SNMP trap или выполнить сценарий в случае успеха или неудачи).
4. Новые алармы и категории для vSphere Health.
Опция acknowledgement (заглушить) для алармов vSphere health (как и для обычных алармов).
Новые категории теперь включают в себя:
Online Availability
Compute
Network
Storage
Эти новые категории позволяют более органично охватывать проблемы сервера vCenter и упрощать управление им.
5. Улучшения Content Library.
Функции синхронизации шаблонов VM Template (VMTX).
Шаблоны виртуальных машин теперь можно синхронизировать в автоматическом режиме, как между приватными облаками с серверами vCenter, так и с публичным облаком VMware Cloud on AWS.
6. Улучшения vSphere Client.
В vSphere Client появилась возможность "code capture" (о ней мы писали вот тут). Теперь она позволяет вести запись пользовательских действий, которые были сделаны в рамках текущей сессии через vCenter API, и генерация соответствующего скрипта. Далее его можно использовать для автоматизации задач в инфраструктуре vSphere.
Функции API Explorer (доступны в разделе "Developer Center") - простая утилита по поиску в API, которая позволяет найти основные API-вызовы, включая примеры и возможность их тестирования.
7. Улучшения vSphere Update Manager.
Улучшения пользовательского интерфейса, включая функции attach, compliance check и remediation (все можно делать на одном экране).
Теперь можно привязать и сделать remediate для нескольких бейслайнов в рамках одной операции.
Во время remediation можно отключать removable-девайсы от виртуальных машин, включать Quickboot и пропускать проверки vSAN HealthCheck.
8. Улучшения VMware Tools.
Для Windows Server 2016 тулзы теперь обновляются через Windows update, а значит, что их обновления включены в общий цикл апдейта системы.
Версия VMware tools for Linux (в формате .TAR) больше не развивается, начиная с VMware Tools 10.3.10, так как OpenVM Tools доступны через любой package update manager.
9. Фикс Host Profiles.
Теперь при применении профиля хоста к ESXi не удаляется интерфейс VMK0, как это было раньше.
10. Улучшения безопасности.
Windows Server 2019 и RHEL 8 теперь полностью поддерживаются в vSphere 6.7 Update 2.
Можно применять лимиты для Password History и Reuse.
Теперь логируются дополнительные события SSO.
Улучшения ESXi certification API.
Генерация запроса vCenter Server CSR доступна через GUI клиента.
vSphere 6.7 Update 2 лучше обрабатывает уязвимости CPU за счет нового планировщика.
Доступна сертификация NIAP.
11. Улучшения производительности.
Поддержка 40 & 100Gb Ethernet и RDMA
Новая версия Virtual Hardware 15 (VM Compatibility):
До 256 vCPU на виртуальную машину
До 6 ТБ RAM на ВМ
Поддержка SAP HANA
На момент написания статьи обновление VMware vSphere 6.7 Update 2 было еще недоступно. Мы обновим пост, когда обновление можно будет скачать.
Интересный проект доступен на GitHub - набор скриптов vDocumentation, который позволяет через PowerCLI сгенерировать отчетность в форматах CSV или XLS, посвященную различным сторонам виртуальной инфраструктуры (сеть, хосты, кластеры vSAN и т.п.). Демо этого средства было представлено на VMworld 2017:
Проект vDocumentation на текущий момент содержит 8 сценариев, каждый из который позволяет подготовить соответствующий отчет:
Get-ESXInventory - генерация всех аппаратных параметров хостов ESXi и их конфигураций.
Get-ESXIODevice - документирование конфигурации карт HBA, NIC и других PCIe-устройств, включая PCI ID, MAC, версии микрокода и драйверов.
Get-ESXNetworking - конфигурация сетевого окружения, включая детали сетевых адаптеров, коммутаторов vSwitches, параметры VMKernel и прочее.
Get-ESXStorage - параметры инфраструктуры хранилищ, включая детали iSCSI, FibreChannel, параметры датасторов и механизма доступа по нескольким путям (Multipathing).
Get-ESXPatching - информация об установленных обновлениях, времени их выхода и ссылки на соответствующие статьи KB.
Get-vSANInfo - документирование кластеров vSAN.
Get-ESXSpeculativeExecution - статус серверов ESXi в отношении уязвимостей Spectre и Meltdown.
Get-VMSpeculativeExecution - статус виртуальных машин в отношении уязвимостей Spectre и Meltdown.
Например, вот отчет о статусе хостов ESXi в отношении уязвимостей Spectre и Meltdown:
По умолчанию данные выводятся в терминал, но можно их перенаправить с CSV или XLS файлы.
Загрузить сценарии vDocumentation можно по этой ссылке.
Совсем недавно мы писали о новых возможностях решения VMware NSX-T 2.4, которое предназначено для сетевой виртуализации и агрегации виртуальных сетей датацентров, работающих на базе гибридной среды гипервизоров и контейнеров приложений.
Также у VMware есть продукт vRealize Network Insight, который позволяет системным и сетевым администраторам, а также администраторам информационной безопасности, следить за сетевым взаимодействием в рамках виртуальной инфраструктуры и предпринимать действия по ее защите.
Ну и, конечно же, многие из вас помнят решение AppDefense, анонсированное на VMworld 2017. Оно реализует новую модель защиты приложений в виртуализованных и облачных средах. Суть технологии AppDefense заключается в том, что она изучает нормальное поведение операционной системы и приложений при обычных условиях, а в случае выявления отклонений от этого состояния, оповещает об этом администратора и автоматически предпринимает некоторые шаги по защите окружения.
Использовав наработки этих трех продуктов за последние годы, компания VMware на днях анонсировала новое решение - первый в отрасли Service-defined Firewall.
Это решение основано на подходе по микросегментации приложений с точки зрения защиты виртуальной среды (см. service insertion и guest introspection), что подразумевает анализ сетевой активности на уровне приложения, при этом мониторинг ведется извне гостевой ОС на уровне гипервизора (данные берутся из NSX или напрямую с серверов ESXi), что позволяет исключить манипуляции средствами обнаружения вторжений, которые могут быть выполнены программным обеспечением внутри ОС.
Но главная штука VMware Service-defined Firewall - это возможность создания политик на уровне приложений/микросервисов, а не сетевых компонентов (серверов/ОС/портов). Это существенно упрощает ввод в эксплуатацию новых сервисов с точки зрения организации их защиты, а также обслуживания при перемещении виртуальных машин внутри датацентра и между ЦОДами.
Традиционная защита ИТ-инфраструктуры строится на базе обеспечения безопасности приложений, находящимися за сетевыми экранами, то есть защищается только сетевой периметр. При этом часто вектор атаки расположен внутри инфраструктуры, где вредоносное ПО сначала изучает ее состав и структуру, а потом начинает распространяться в датацентре, используя его уязвимые места.
VMware Service-defined Firewall позволит использовать новый подход к защите сетевой инфраструктуры предприятия за счет анализа приложений внутри периметра ЦОД (internal network firewalling), где наблюдение за сервисами происходит на уровне гипервизора и на седьмом уровне модели OSI (L7 packet inspection), без агентов в гостевых ОС, при этом используется модель Zero Trust (то есть изначально нет доверия ни одному компоненту в сети, считается, что атака может прийти откуда угодно, через любое сетевое соединение).
Суть защиты заключается в наблюдении за всеми приложениями датацентра, определении их "хорошего" поведения и далее детектировании отклонений от их повседневной активности, что влечет за собой оповещение администратора, который уже предпринимает действия по устранению угроз. При этом VMware Service-defined Firewall сам способен сгенерировать нужные политики для защиты приложений.
Такая модель обладает неоспоримым преимуществом перед системами с агентами, где вредоносное ПО может получить контроль над этими агентами. Также еще один плюс VMware Service-defined Firewall - это чисто программная реализация. В современном мире программно-аппаратные сетевые экраны сложно масштабируются, а также есть проблемы с управлением ими, так как приложение в виртуальной инфраструктуре может перемещаться между серверами и даже между датацентрами.
Для анализа подозрительных активностей используется Application Verification Cloud, который собирает информацию из миллионов виртуальных машин по всему миру и использует методы машинного обучения для определения нормального поведения микросервисов и их вариаций, а также выявления отклонений от нормальных показателей.
Что интересного можно почитать на тему VMware Service-defined Firewall:
Вы все, конечно же, в курсе, что графические карты уже давно используются не только для просчета графики в играх и требовательных к графике приложениях, но и для вычислительных задач. Сегодня процессоры GPGPU (General Purpose GPU) используются в ИТ-инфраструктурах High Performance Computing (HPC) для решения сложных задач, в том числе машинного обучения (Machine Learning, ML), глубокого обучения (Deep Learning, DL) и искусственного интеллекта (Artificial Intelligence, AI).
Эти задачи, зачастую, хорошо параллелятся, а архитектура GPU (по сравнению с CPU) лучше приспособлена именно для такого рода задач, так как в графических платах сейчас значительно больше вычислительных ядер:
Кроме того, архитектура CPU больше заточена на решение последовательных задач, где параметры рассчитываются друг за другом, а архитектура GPU позволяет независимо просчитывать компоненты задачи на разных процессорных кластерах, после чего сводить итоговый результат.
Вот так, если обобщить, выглядит архитектура CPU - два уровня кэша на базе каждого из ядер и общий L3-кэш для шаринга данных между ядрами:
Число ядер на CPU может достигать 32, каждое из которых работает на частоте до 3.8 ГГц в турбо-режиме.
Графическая карта имеет, как правило, только один уровень кэша на уровне вычислительных модулей, объединенных в мультипроцессоры (Streaming Multiprocessors, SM), которые, в свою очередь, объединяются в процессорные кластеры:
Также в видеокарте есть L2-кэш, который является общим для всех процессорных кластеров. Набор процессорных кластеров, имеющих собственный контроллер памяти и общую память GDDR-5 называется устройство GPU (GPU Device). Как видно, архитектура GPU имеет меньше уровней кэша (вместо транзисторов кэша на плату помещаются вычислительные блоки) и более толерантна к задержкам получения данных из памяти, что делает ее более пригодной к параллельным вычислениям, где задача локализуется на уровне отдельного вычислительного модуля.
Например, если говорить об устройствах NVIDIA, то модель Tesla V100 содержит 80 мультипроцессоров (SM), каждый из которых содержит 64 ядра, что дает в сумме 5120 ядер! Очевидно, что именно такие штуки надо использовать для задач ML/DL/AI.
Платформа VMware vSphere поддерживает технологию vGPU для реализации такого рода задач и возможности использования виртуальными машинами выделенных ВМ модулей GPU. В первую очередь, это все работает для карточек NVIDIA GRID, но и для AMD VMware также сделала поддержку, начиная с Horizon 7 (хотя и далеко не в полном объеме).
Еще одна интересная архитектура для решения подобных задач - это технология FlexDirect от компании BitFusion. Она позволяет организовать вычисления таким образом, что хосты ESXi с модулями GPU выполняют виртуальные машины, а их ВМ-компаньоны на обычных серверах ESXi исполняют непосредственно приложения. При CUDA-инструкции от клиентских ВМ передаются серверным по сети:
Обмен данными может быть организован как по TCP/IP, так и через интерфейс RDMA, который может быть организован как подключение Infiniband или RoCE (RDMA over Converged Ethernet). О результатах тестирования такого сетевого взаимодействия вы можете почитать тут.
При этом FlexDirect позволяет использовать ресурсы GPU как только одной машине, так и разделять его между несколькими. При этом администратор может выбрать, какой объем Shares выделить каждой из машин, то есть можно приоритизировать использование ресурсов GPU.
Такая архитектура позволяет разделить виртуальную инфраструктуру VMware vSphere на ярусы: кластер GPU, обсчитывающий данные, и кластер исполнения приложений пользователей, которые вводят данные в них и запускают расчеты. Это дает гибкость в обслуживании, управлении и масштабировании.
Многие администраторы VMware vSphere сталкиваются с необходимостью развертывания кастомных образов VMware ESXi, например, от HP или Dell, так как они содержат все необходимые драйверы серверного оборудования.
Но процедура, как правило, такова - сначала администратор развертывает последний доступный образ ESXi Custom ISO, а уже после установки накатывает на него обновления через ESXCLI или Update Manager. Это несколько неудобно, так как зачастую требует перезагрузки уже после окончания основной установки.
Если у вас, например, 1500 хостов ESXi, то дополнительное время которое вы потратите за год на процедуры обновления после основной установки может составить до 42 часов в месяц (при условии, что вы накатываете по каким-то причинам образ ESXi на сервер где-то раз в год). Это, конечно же, очень много, поэтому в таких случаях стоит задуматься об интеграции обновлений в кастомизированный образ ESXi.
На самом деле, делается это достаточно просто с помощью PowerCLI в несколько команд (подробно процесс описан в документе Image Builder Patching):
1. Загружаете патчи в формате zip-бандлов и складываете их в одну папку.
Политика ограничения виртуальных машин по операциям ввода-вывода (IOPS limits storage policy rule) позволяет ограничить виртуальную машину в кластере VMware vSAN в плане потребления ресурсов хранилища. Она применяется для VMDK дисков машин и, как правило, используется в ситуациях, когда нужно изолировать "прожорливого соседа" - то есть виртуальную машину, которая может начать потреблять несоразмерно много ресурсов хранилища по вводу-выводу на хосте ESXi, вызывая большие задержки (latency) у других машин этого хоста. При этом такая машина на данном хосте может быть далеко не самой важной.
Ограничение машины по IOPS имеет некоторые особенности. Размер операции ввода-вывода может варьироваться в диапазоне от 4 КБ до 1 МБ. Это означает, что самая большая операция может быть в 256 больше по объему самой маленькой. Поэтому при применении ограничения по IOPS решение vSAN использует так называемые "взвешенные IOPS", определяемые квантами по 32 КБ (об этом мы писали вот тут). При размере операции до 32 КБ планировщик vSAN считает ее как одну операцию, 32-64 КБ - как две, и так далее.
Это позволяет при визуализации метрик производительности нормализовать поток данных к хранилищу и управлять им при импорте настроек из механизма SIOC, который применяется к виртуальным машинам не в кластере vSAN. Надо отметить, что vSAN имеет собственную механику регуляции I/O и собственный планировщик, поэтому механизм SIOC не применяется к таким хранилищам.
Соответственно, давайте взглянем на графики операций ввода-вывода на вкладке Monitor->vSAN->Performance:
На нижнем графике (Virtual SCSI IOPS) мы видим число реальных операций ввода-вывода, независимо от их размера, а на верхнем - уже нормализованные IOPS и лимиты, применяемые к ВМ.
IOPS limit применяется только ко всему потоку ввода-вывода гостевой ОС машины (то есть ярус хранения, ярус кэширования), но не затрагивает операции с самим диском VMDK и его swap-файлами, например, репликация машины, SVmotion (миграция хранилища), XVmotion (миграция машин без общего хранилища) и клонирование ВМ.
Если машина достигает лимита по IOPS, планировщик vSAN для нее начинает откладывать операции ввода-вывода до завершения транзакции таким образом, чтобы они не превышали заданного лимита по нормализованному числу операций в секунду. Это все приводит к тому, что задержки исполнения данных операций (latency) существенно возрастают, что видно на графике Virtual SCSI Latency:
Здесь мы видим, что при достижении лимита 200 IOPS latency возросла до 580 мс, а при достижении 400 мс - где-то до 230-290 мс. Эти задержки, возникающие на уровне виртуальной машины, проявляют себя также и на уровне всего хоста, кластера и даже приложений, таких как vRealize Operations.
Этот важный фактор надо учитывать, когда вы ищете причину высокой latency, потому что механизм vSAN Performance Service не делает различий, возникли ли задержки из-за проблем с производительностью, или они являются результатом применения IOPS limits.
Интересно также, что применение IOPS limits storage policy rule к одной виртуальной машине может повлиять и на другую ВМ, к которой не применяется этого правила. Например, вы копируете файлы одной ВМ на вторую (и обратно), у которой есть IOPS limit. При достижении этого лимита, очевидно, происходит уменьшение числа IOPS не только у целевой ВМ, но и у источника, так как происходит уменьшение совокупного числа операций ввода-вывода на передачу файлов.
При этом у исходной ВМ в этом случае не будет существенного изменения latency, так как ее операции откладываться не будут (посмотрите на левый и правый графики этой ВМ):
К сожалению, описанные эффекты влияния на производительность ВМ не всегда просто идентифицировать, поэтому нужно всегда осторожно выставлять IOPS limit и всегда четко его документировать в описании конфигурации виртуальной инфраструктуры.
Одна из новых возможностей, анонсированных в платформе виртуализации VMware vSphere 6.7 - это vSphere Health. О ней мы уже вкратце упоминали вот тут.
Сегодня мы дополним эту информацию. Механизм vSphere Health опирается на глобальную базу знаний VMware, которая позволяет ежедневно выдавать предупреждения о 100 тысячах потенциальных проблем в инфраструктурах заказчиков и решать около 1000 актуальных проблем каждый день.
На данных момент vSphere Health включает в себя около 30 проверок (Heath Checks), которые запускаются для окружения vSphere. Вот примеры проблем, которые могут подсвечивать данные проверки:
Для фиксирования, аналитики и поиска решений подобных проблем компания VMware использует облако VMware Analytics Cloud (VAC), которое принимает данные телеметрии виртуальных инфраструктур (онпремизных и SaaS-приложений) и формирует рекомендации по решению проблем. Сами данные в обезличенном виде передаются с помощью движка Customer Experience Improvement Program (CEIP).
Облако VAC постоянно анализирует пользовательские виртуальные среды, при этом оно постоянно пополняется новыми знаниями о проблемах, которые в асинхронном режиме отображаются в интерфейсе пользователей в vSphere Client (для vSphere 6.7 и более поздних версий).
Данные инфраструктур заказчиков, которые попадают в облако VAC через механизм CEIP, надежно защищаются. Их использование людьми доступно только для выполнения определенных задач. Сами правила регулируются комитетом Product Analytics Data Governance Board, куда входят инженеры, юристы, специалисты по безопасности и прочие сотрудники с различными ролями. Эта команда регулярно проверяет рабочий процесс использования этих данных. Естественно, эти данные не передаются третьим сторонам.
О том, какие именно данные собираются с помощью CEIP, и как они используются, можно почитать в специальном документе (он небольшой, 10 страниц). Включить CEIP можно через интерфейс vSphere Client следующим образом:
Также этот механизм можно включить при апгрейде платформы vSphere или через интерфейс командной строки (CLI). В рамках CEIP собирается следующая информация о виртуальной среде:
Configuration Data – как и что у вас настроено в плане продуктов и сервисов VMware.
Feature Usage Data - как именно вы используете возможности продуктов и сервисов.
Performance Data - производительность различных объектов виртуальной инфраструктуры в виде метрик и чсиленных значений (отклик интерфейса, детали об API-вызовах и прочее).
Если в рамках вашего плана поддержки вы используете Enhanced Support для CEIP (например, Skyline), то на серверы VMware для анализа отправляются еще и продуктовые логи (Product Logs). Документация по CIEP доступна здесь.
Чтобы посмотреть текущие проверки Health Checks, нужно перейти на вкладку Monitor сервера vCenter Server, после чего перейти в раздел Health:
Там видны проблемы и объекты, к которым они относятся (в данном случае, к хостам ESXi):
Завтра мы расскажем подробнее о том, как работают эти проверки, какие решения они предлагают, и как помогают администратору держать виртуальную инфраструктуру в порядке.
В конце прошлого года мы писали о новых возможностях VMware vCenter в составе обновленной платформы виртуализации VMware vSphere 6.7 Update 1. Среди прочих интересных фичей, vCenter 6.7 U1 получил функцию Health Сhecks, которая позволяет обрабатывать данные телеметрии виртуальной инфраструктуры и на основе экспертных алгоритмов вырабатывать рекомендации по ее улучшению. Например, если у вас одна сеть Management network, вам могут порекомендовать ее задублировать.
Вчера мы писали об общем устройстве механизма vSphere Health. Давайте теперь детально посмотрим, как именно это работает. Сделано это чем-то похоже на службы vSAN Health Services, но здесь больше проактивной составляющей (то есть рекомендации генерируются постепенно и еще до возникновения реальных проблем).
Для просмотра основных хэлсчеков сервера vCenter, нужно в vSphere Client пойти на вкладку Monitor и выбрать там раздел Health:
Чтобы эти фичи функционировали корректно, нужно чтобы у вас была включена настройка Customer experience improvement program (CEIP). Если вы не включили ее во время установки vCenter, то вы всегда можете сделать это в разделе Administration клиента vSphere Client:
Надо отметить, что vCenter Health Сhecks не только оповещает о проблемах виртуальной инфраструктуры, но и в некоторых случаях предоставляет ссылки на статьи базы знаний VMware KB, которые могут помочь найти решения.
Если вы нажмете на какой-нибудь из ворнингов, например, "Disk space check for VMware vCenter Server Appliance", то увидите две группы параметров на вкладках "Details" и "Info":
На вкладке Details отображены численные значения и/или объекты виртуальной инфраструктуры, имеющие отношение к предупреждению, а вот вкладка Info разъясняет его суть и дает рекомендации по его устранению. Если же в правом верхнем углу появился значок "Ask VMware", значит для данного предупреждения есть ссылка на статью базы знаний VMware KB, которая может помочь:
Например, здесь на двух из трех хостов ESXi установлена не последняя версия драйвера bnx2x (адаптер Broadcom NetXtreme II 10Gb):
На вкладке Info объясняется, что хосты с такой версией драйвера этого устройства могут вывалиться в "розовый экран":
Если нажмем "Ask VMware", то в новой вкладке откроется статья KB, описывающая проблемы данной версии драйвера и пути их решения:
Если вы сделали изменения конфигурации согласно рекомендациям, вы можете нажать кнопку RETEST в правом верхнем углу, чтобы увидеть только актуальные предупреждения:
Некоторые администраторы инфраструктуры VMware vSphere знают, что существует средство Update Manager Download Service (UMDS), с помощью которого можно скачивать обновления ESXi для последующего их наката со стороны vSphere Update Manager (VUM), интерфейс которого сейчас реализован в vSphere Client на базе HTML5:
UMDS вам может оказаться полезным в двух случаях:
Вы не можете выставить в интернет сервер vCenter, частью которого является VUM, для загрузки обновлений (например, в соответствии с корпоративными политиками). Поэтому нужно развернуть UMDS на компьютере в DMZ, с которого VUM будет забирать обновления (либо вы будете их перекидывать на VUM вручную).
У вас есть несколько серверов Update Manager, и вы используете UMDS в качестве централизованной точки распространения обновлений серверов ESXi, чтобы каждый vCenter не скачивал обновления из интернета самостоятельно.
Начиная с Update Manager версии 6.7, сервис UMDS доступен для развертывания на платформах Windows и Linux. Для Windows поддерживаются те же серверные ОС, что и для сервера vCenter, а для Linux список систем можно найти в документации. Вот они:
Ubuntu 14.0.4
Ubuntu 18.04
Red Hat Enterprise Linux 7.4
Red Hat Enterprise Linux 7.5
Кстати, начиная с vSphere 6.7 Update 1, VMware отменила требование к созданию базы данных для UMDS, поэтому использование сервиса стало еще проще и удобнее.
Если вы используете UMDS на Windows, то вам понадобится Microsoft .NET framework 4.7 и та же версия UMDS, что и сам Update Manager.
На Linux UMDS автоматически не создает переменной PATH для сервиса vmware-umds. Чтобы запустить команду vmware-umds нативно, нужно добавить переменную окружения с путем к сервису следующей командой:
PATH=”$PATH”:/usr/local/vmware-umds/bin
Чтобы на Linux посмотреть текущую конфигурацию UMDS, нужно выполнить команду:
/usr/local/vmware-umds/bin/vmware-umds -G
Здесь мы видим сконфигурированные урлы для хранилищ обновлений (depots), локальный путь к хранению патчей и путь экспорта хранилища, по которому серверы VUM будут забирать обновления. Также здесь мы видим, контент каких версий ESXi нужно скачивать.
Если у вас все хост-серверы одной версии, например, ESXi 6.7, то вы можете отключить скачивание всех остальных образов командой:
Еще одна важная опция - это задание собственного пути к репозиторию обновлений. Например, если вы используете кастомизированные образы ESXi для серверов Dell, то вы можете добавить адрес репозитория следующей командой:
После того, как URL репозитория добавлен, мы можем принудительно скачать все образы обновлений командой:
sudo /usr/local/vmware-umds/bin/vmware-umds -D
Полный список опций UMDS можно получить с помощью вот этой команды:
/usr/local/vmware-umds/bin/vmware-umds --help
Далее вам нужно уже пойти на сервер VMware Update Manager и настроить его на использование с репозиторием UMDS. Если у вас очень высокие требования к безопасности, то вы можете отнести обновления на сервер VUM, например, на флешке. Второй вариант - настроить на UMDS веб-сервер и указать его как путь для обновлений от VUM.
Если вы используете вариант с веб-сервером, то его публичную папку надо настроить на следующий путь по умолчанию:
C:\ProgramData\VMware\VMware Update Manager\Data\ - на Windows.
Некоторые из вас, возможно, слышали об утилите vCheck for Horizon (vCheck-HorizonView), которая позволяет вам на регулярной основе готовить отчеты о текущем состоянии инфраструктуры виртуальных ПК VMware Horizon View. Этот проект базируется на утилите vCheck для VMware vSphere, которая развивается уже почти 7 лет.
В новой версии vCheck for Horizon появились следующие новые возможности:
1. Проверки состояния инфраструктуры ферм RDS:
2. Проверки состояния домена Active Directory:
3. Вызов vCenter API был разделен на 3 части - состояние сервиса vCenter, статус хостов ESXi и состояния подключенных датасторов:
4. Также была добавлена проверка работоспособности механизмов saml и truesso.
Скачать vCheck for Horizon можно по этой ссылке, а пример итогового отчета в формате HTML можно посмотреть вот тут.
На сайте проекта VMware Labs появилась интересная и полезная некоторым администраторам vSphere штука - USB Network Native Driver for ESXi. Это нативный драйвер для сетевых адаптеров серверов, которые подключаются через USB-порт.
Такой адаптер можно использовать, когда вам необходимо, например, подключить дополнительные Ethernet-порты к серверу, а у него больше не осталось свободных PCI/PCIe-слотов. В каких-то еще случаях подключение такого адаптера может помочь, чтобы получить еще одно сетевое соединение без необходимости перезагружать сервер (и так же просто отключить его).
На данный момент драйвер поддерживает 3 самых популярных чипсета на рынке:
ASIX USB 2.0 gigabit network ASIX88178a
ASIX USB 3.0 gigabit network ASIX88179
Realtek USB 3.0 gigabit network RTL8153
А вот, собственно, и сами поддерживаемые адаптеры:
Надо отметить, что это сравнительно недорогие устройства, которые может позволить себе каждый администратор платформы vSphere.
Затем нужно будет перезагрузить хост VMware ESXi, после чего устройство USB NIC будет автоматически смонтировано как, например, vusb0. Но чтобы приаттачить такой NIC к виртуальному коммутатору vSwitch, придется добавить в /etc/rc.local.d/local.sh такой скрипт:
vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
count=0
while [[ $count -lt 20 && "${vusb0_status}" != "Up" ]] ]
do
sleep 10
count=$(( $count + 1 ))
vusb0_status=$(esxcli network nic get -n vusb0 | grep 'Link Status' | awk '{print $NF}')
done
if [ "${vusb0_status}" = "Up" ]; then
esxcfg-vswitch -L vusb0 vSwitch0
esxcfg-vswitch -M vusb0 -p "Management Network" vSwitch0
esxcfg-vswitch -M vusb0 -p "VM Network" vSwitch0
fi
Драйвер работает с VMware vSphere 6.5 и 6.7. Скачать его можно по этой ссылке.
Что нового в версии vSAN Hardware Compatibility List Checker 2.0:
Добавлено 3 новых проверки:
Добавлена информация о контроллерах, которые сертифицированы VMware для нужного релиза ESXi.
Информация о драйверах контролеров, сертифицированных VMware.
Информация о микрокоде (firmware), сертифицированном VMware.
Обновленный формат HTML-отчета.
Несколько исправлений ошибок.
Для начала работы нужно просто ввести имя хоста ESXi и пароль пользователя root:
В качестве результата в папке с утилитой будет сформирован html-файл (этот шаблон можно редактировать в файле reportTemplate.html), в котором будет информация о совместимости контроллеров хранилищ со списком VSAN HCL (шильдики yes и N/A).
Загрузить vSAN Hardware Compatibility List Checker 2.0 можно по этой ссылке.
P.S. Если у вас проблемы с использованием утилиты, попробуйте опцию --noSSLVerify.
Продолжаем рассказывать о новых возможностях следующей версии решения для создания отказоустойчивых кластеров хранилищ VMware vSAN. Напомним прошлые статьи этого цикла:
В этой заметке мы поговорим еще об одной возможности, касающейся способов хранения данных в кластере - vSAN Scalable File Services. Как вы знаете, vSAN предоставляет пространство хранения для виртуальных машин и дисков VMDK (в том числе дисков FCD), а также дает возможность использовать логические тома по протоколу iSCSI.
Так вот, функциональность vSAN File Services дает возможность использовать дисковое пространство по протоколам NFS и SMB, что дает возможность раздавать ресурсы кластера через эти протоколы для внешних потребителей без необходимости создания отдельных машин для файловых помоек, например, с Windows Server на борту.
Также файловые шары NFS/SMB будут находиться под управлением политик Storage Policy Based Management (SPBM), а также будут работать в растянутых кластерах vSAN, что позволит рассматривать их как часть общего пространства vSAN в распределенных датацентрах. С помощью SPBM можно будет использовать такие сервисы, как FTT (переносимость отказов хостов ESXi), шифрование и развертывание хранилищ, растущих по мере наполнения данными (thin provisioning).
Механизм файлового шаринга работает на базе файловой системы vSAN Distributed File System (vDFS), которая позволяет агрегировать дисковые объекты vSAN для предоставления пространства хранения, а сервисы управления предоставляет платформа Storage Services Platform.
С точки зрения интерфейса создания и экспорта файловых шар, эти сервисы будет представлять vCenter и vSphere Client (там же будут назначаться права доступа, квоты и прочее).
Сервисы vSAN FIle Server (в демо они были показаны как виртуальные модули, Virtual Appliances) будут реализовывать экспорт папок. Кроме того, они будут иметь механизм обнаружения сбоев и перезапуска этих машин на других серверах:
Такая архитектура также позволит просто апгрейдить хост-серверы ESXi, не останавливая предоставляемые файловые сервисы.
Кроме того, vSAN File Services будут предоставлять свои ресурсы на уровне файлов для контейнеров на платформе Kubernetes:
Также вы можете посмотреть 2 интересных видеопрезентации с VMworld 2018 и VMworld Europe 2018, посвященных vSAN Scalable File Services:
HCI3041BE – VMworld Europe 2018 session: Introducing Scalable File Storage on vSAN with Native File Services. Также к этому видео прилагается презентация в формате PDF.
HCI3728KE – VMworld Europe 2018 session: Innovating Beyond HCI: How VMware is Driving the Next Data Center Revolution.
Подписаться на бету следующей версии продукта VMware vSAN можно по этой ссылке. Ожидается, что первая реализация будет поддерживать NFS 4.1 с аутентификацией в AD, шары SMB, Kerberos, протокол OpenLDAP и механизм vSAN Data Protection.
Больше пяти лет назад мы писали про проект vCenter Server Simulator 2.0 (VCSIM), который позволял протестировать основные интерфейсы VMware vCenter без необходимости его реального развертывания (а значит и без лицензии). Проблема в том, что он был выпущен для VMware vSphere и vCenter версий 5.5 и с тех пор не обновлялся.
Зато есть аналог старому VCSIM - новый проект govcsim, написанный на языке Go (Golang). Он точно так же умеет предоставлять API-ответы на вызовы к vCenter Server и ESXi.
Несмотря на то, что этот симулятор написан на Go, он позволяет вам работать с vCenter посредством любого языка и интерфейса, умеющего общаться через API (в том числе, PowerShell). То есть, вы можете соединиться через PowerCLI к VCSIM Docker Container и работать с ним как с сервером vCenter.
Сам контейнер nimmis/vcsim можно скачать отсюда. Pull-команда для него:
If ($PSVersionTable.PSVersion.Major -ge 6) {
Test-Connection $Server -TCPPort 443
}
Connect-VIServer -Server $Server -Port 443 -User u -Password p
# Did it work?
Get-VM
# Or Get-VMHost, or Get-Datastore, etc.
Этот код делает следующее:
Запускает docker-контейнер VCSIM локально (если у вас его нет, то он будет загружен).
На Windows-системе получает IP-адрес адаптера DockerNAT.
После запуска контейнера тестирует, что порт 443 отвечает.
Использует модуль VMware.PowerCLI интерфейса PowerShell для соединения с vCenter Simulator.
Симулятор на данный момент поддерживает не все множество API-методов (смотрите документацию). Вот так, например, можно вывести список всех поддерживаемых методов и типов:
$About = Invoke-RestMethod -Uri "https://$($Server):443/about" -Method Get
$About.Methods
$About.Types
Например, вы можете использовать PowerOffVM_Task, PowerOnMultiVM_Task и PowerOnVM_Task. Из PowerCLI попробуйте также протестировать командлеты Stop-VM и Start-VM. Ну а дальше изучайте документацию к библиотеке govmomi.
В самом конце января компания VMware обновила свой клиент для управления отдельными хостами ESXi, выпустив Embedded Host Client версии 1.33. Напомним, что о версии 1.32, вышедшей в ноябре прошлого года, мы писали вот тут.
Давайте посмотрим, что нового появилось в хостовом клиенте версии 1.33:
Множество исправлений ошибок, которые ранее возникали при импорте OVF-шаблона.
ISO-образы теперь можно импортировать из OVA.
Исправлена проблема со спецсимволами в названиях датасторов на ESXi.
Пофикшены перепутанные подписи к графику Network (transmit и receive).
Сетевые адптеры добавляются к виртуальной машине в правильном порядке.
Исправлена проблема с некорректными оповещениями фаервола об устаревших лицензиях.
Поддержка шведского языка для ввода в консоли ВМ.
Отображение WWN и WWPN адаптеров Fibre Channel как 64-битных адресов.
Скачать ESXi Embedded Host Client можно по этой ссылке. Кстати, некоторые пишут, что у них повились проблемы данной версии клиента для ESXi 5.5.
Чтобы централизованно обновлять VMware для всех ВМ, вам нужно настроить единый репозиторий на всех хостах ESXi, из которого будет происходить апдейт. Сначала нужно создать для этого папку, например:
/vmfs/volumes/vsanDatastore/vmtools
Далее нужно скачать последнюю версию VMware Tools по ссылке выше и положить ее в созданную папку (включая папки "vmtools" и "floppies").
Теперь на каждом хосте ESXi нужно обновить указатель ProductLocker через интерфейс MOB (Managed Object Browser). Для этого надо зайти по ссылке:
Далее нужно выбрать хост ESXi, для которого вы хотите обновить этот указатель. Здесь есть два API вызова, которые вам понадобятся:
Вызов QueryProductLockerLocation покажет вам текущий указатель на папку с VMware Tools на хосте (ProductLocker):
Метод UpdateProductLockerLocation_Task позволит вам обновить размещение для пакетов VMware Tools для этого хоста, добавив путь к нужной папке в параметр path:
Теперь снова вызовите QueryProductLockerLocation, чтобы увидеть, что путь к папке обновился:
Теперь все остальные хосты ESXi также нужно перенастроить на путь к этой папке, чтобы они брали обновления VMware Tools из единого места, где всегда будет лежать последняя версия пакета.